package hyperNexusCommon

import (
	"crypto/md5"
	"crypto/sha256"
	"encoding/hex"

	"github.com/google/uuid"
)

// 生成uuid
func GenerateUUID() string {
	return uuid.New().String()
}

func Sha256Hex(input string) string {
	// 创建SHA256哈希对象
	hasher := sha256.New()

	// 写入输入数据
	hasher.Write([]byte(input))

	// 计算哈希值并转换为十六进制字符串
	hashBytes := hasher.Sum(nil)
	hashString := hex.EncodeToString(hashBytes)

	return hashString
}

// 生成32位随机字符串
func GenerateRandomString32() string {
	return GenerateUUID()[:32]
}

// MD5加密
func MD5Hex(input string) string {
	// 创建MD5哈希对象
	hasher := md5.New()

	// 写入输入数据
	hasher.Write([]byte(input))

	// 计算哈希值并转换为十六进制字符串
	hashBytes := hasher.Sum(nil)
	hashString := hex.EncodeToString(hashBytes)

	return hashString
}
